package com.waitingsnow.common.share.netEaseMicroblog.location
{
	import com.waitingsnow.common.share.bridia.net.oauth.BDOAuthConnection;
	import com.waitingsnow.common.share.netEaseMicroblog.NEMicroblog;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMObject;
	
	public class NEMLocation extends NEMObject
	{
		/**
		 * 
		 * <p>创建一个新的NEMLocation对象.</p> 
		 * 
		 * @param parent 上级对象.(NEMicroblog)
		 * @param oauth OAuth链接
		 * 
		 */		
		
		public function NEMLocation(parent:NEMicroblog, oauth:BDOAuthConnection)
		{
			super(parent, oauth);
		}
		
		///
		///	[Location venues]
		///
		
		/**
		 * 
		 * <p>location/venues</p>
		 * <p>返回指定位置附近或者符合搜索关键字的地点列表。</p>
		 *  
		 * @param lat 	可选参数，即纬度。范围在+90.0 到 -90.0，如果超出这个范围则忽略该值，必须与long参数一起使用，否则忽略该值；
		 * @param long 	可选参数,即经度。范围在+180.0到-180.0，如果超出这个范围则忽略该值，必须与lat参数一起使用，否则忽略该值；
		 * @param count 可选参数，返回数据的个数，默认为10，最大为50；
		 * @param q 	可选参数，搜索关键字，必须与经纬度（lat,long）参数同时使用才有效，,根据定位的数据在用户所在的城市搜索相应的POI，如没有经纬度参数或无结果返回404；
		 * 
		 */	
		
		public function location_venues (lat:String = null, long:String = null, count:uint = 10, q:String = null):void
		{
			oauth.addOAuthParameters ("lat", lat, true);
			oauth.addOAuthParameters ("long", long, true);
			oauth.addOAuthParameters ("count", count.toString (), true);
			oauth.addOAuthParameters ("q", q, true);
			
			//
			
			super.connect ("LOCATION_VENUES");
		}
		
		///
		///	[Location timeline]
		///
		
		/**
		 * 
		 * <p>/statuses/location_timeline</p>
		 * <p>通过经纬度或POI返回与地理位置相关的微博列表，如传经纬度则返回附近的微博列表，传POI的ID则返回此POI下的微博列表。</p>
		 * <p>如果根据vid参数找不到相应的poi且无定位参数时则返回404；</p>
		 *  
		 * @param lat 		可选参数 : 即纬度。范围在+90.0 到 -90.0，如果超出这个范围则忽略该值，必须与long参数一起使用，否则忽略该值；
		 * @param long 		可选参数 : 即经度。范围在+180.0到-180.0，如果超出这个范围则忽略该值，必须与lat参数一起使用，否则忽略该值；
		 * @param count 	可选参数 : 即POI的id，单独使用时值返回包含此vid的微博。如果经纬度也同时传入，则将两种微博（包含vid或经纬度的）一起返回，按照发微博的时间倒序排列。如果根据vid找不到相应的poi且无定位参数时则返回404；
		 * @param q 		可选参数 : 返回微博的个数，默认为30，最大为200
		 * @param since_id 	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条；
		 * @param max_id	可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表，包含此条；
		 * 
		 */	
		
		public function location_timeline (lat:String = null, long:String = null, count:uint = 10, q:String = null, since_id:String = null, max_id:String = null):void
		{
			oauth.addOAuthParameters ("lat", lat, true);
			oauth.addOAuthParameters ("long", long, true);
			oauth.addOAuthParameters ("count", count.toString (), true);
			oauth.addOAuthParameters ("q", q, true);
			oauth.addOAuthParameters ("since_id", q, true);
			oauth.addOAuthParameters ("max_id", q, true);
			
			//
			
			super.connect ("LOCATION_TIMELINE");
		}
		
		///
		///	[Report]
		///
		
		/**
		 * <p>location/report</p>
		 * <p>将当前用户的地理位置上报给服务器。</p> 
		 * <p>如没有经纬度参数或无结果返回400。</p> 
		 * 
		 * @param lat 	必选参数 : 即纬度。范围在+90.0 到 -90.0，如果超出这个范围则返回400；
		 * @param long 	必选参数 : 即经度。范围在+180.0到-180.0，如果超出这个范围则返回400。
		 * 
		 */		
		
		public function report (lat:String = null, long:String = null):void
		{
			oauth.addOAuthParameters ("lat", lat, true);
			oauth.addOAuthParameters ("long", long, true);
			
			super.connect ("REPORT");
		}
		
		///
		///	[Search neighbors]
		///
		
		/**
		 * 
		 * <p>location/search_neighbors</p>
		 * <p>获取与当前用户所在位置相距500米以内的其他用户；</p>
		 * 
		 * <ul>
		 * 	<li>此接口依赖于/location/report接口，需要其他用户在最长5分钟前已经使用/location/report接口将其地理位置上报给服务器；</li>
		 * 	<li>最多只能返回30个其他用户；</li>
		 * 	<li>如没有经纬度参数或无结果返回400。</li>
		 * </ul>
		 * 
		 * @param lat 	必选参数 : 即纬度。范围在+90.0 到 -90.0，如果超出这个范围则返回400；
		 * @param long 	必选参数 : 即纬度。范围在+90.0 到 -90.0，如果超出这个范围则返回400；
		 * 
		 */	
		
		public function search_neighbors (lat:String = null, long:String = null):void
		{
			oauth.addOAuthParameters ("lat", lat, true);
			oauth.addOAuthParameters ("long", long, true);
			
			super.connect ("SEARCH_NEIGHBORS");
		}
	}
}